import os
import time
import yaml

# 读取配置文件
try:
    with open('sync_modification_time.yml', 'r', encoding='utf-8') as f:
        config = yaml.safe_load(f)
        suffixes = config.get('suffixes', [])
        extensions = config.get('extensions', ['.pdf'])
except FileNotFoundError:
    print("sync_modification_time.yml 文件未找到。")
    suffixes = []
    extensions = ['.pdf']
except yaml.YAMLError as e:
    print(f"读取 sync_modification_time.yml 文件时出错: {e}")
    suffixes = []
    extensions = ['.pdf']

# 获取当前目录下的 PDF 子目录路径
pdf_dir = os.path.join(os.getcwd(), 'PDF')

# 检查 PDF 子目录是否存在
if os.path.exists(pdf_dir):
    # 遍历 PDF 子目录下的所有文件
    for filename in os.listdir(pdf_dir):
        base_name, ext = os.path.splitext(filename)
        if ext.lower() in [ext.lower() for ext in extensions]:
            for suffix in suffixes:
                if base_name.endswith(suffix):
                    # 构建对应的原始文件名
                    original_base_name = base_name.replace(suffix, '')
                    original_filename = original_base_name + ext
                    original_file_path = os.path.join(pdf_dir, original_filename)
                    compressed_file_path = os.path.join(pdf_dir, filename)

                    # 检查原始文件是否存在
                    if os.path.exists(original_file_path):
                        try:
                            # 获取原始文件的修改时间
                            original_mtime = os.path.getmtime(original_file_path)
                            # 设置压缩文件的修改时间为原始文件的修改时间
                            os.utime(compressed_file_path, (time.time(), original_mtime))
                            print(f"已将 {filename} 的修改时间设置为 {original_filename} 的修改时间。")
                        except Exception as e:
                            print(f"处理 {filename} 时出错: {e}")
else:
    print(f"指定的 PDF 子目录 {pdf_dir} 不存在。")